home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
utils
/
gemfut15.lzh
/
GEMXTEND.DOC
< prev
Wrap
Text File
|
1990-08-06
|
23KB
|
484 lines
**************************************************************************
*
* GEMXTEND.DOC - Descriptions of extensions made to GEM bindings since
* the original TOS 1.0 release.
*
* 06/29/90 - v1.5
* Added function v_gchar() to output a single text char.
*
* 05/26/90 - v1.4
* Included documentation on the new calling standard,
* and the bindings that currently support it:
* evnx_multi()
* frmx_center()
* winx_get()
* winx_calc()
*
* 09/06/89 - v1.3
* This document is new with this release, and contains
* revisions through TOS 1.4.
**************************************************************************
This document is divided into two sections. Section 1 documents the
changes and additions Atari has made to the GEM routines in TOS. Section 2
documents alternate calling standards to the existing functions. These
alternate bindings provide more efficient ways to call AES functions.
**************************************************************************
*
* Section 1 - Changes Atari has made to GEM/TOS.
*
**************************************************************************
This section describes extensions Atari has made to TOS/GEM since the
original TOS 1.0 operating system. When Atari adds new VDI/AES functions,
appropriate bindings will be created and documented here. Note that some
of the functions listed here have been available since TOS 1.0, but Atari
neglected to document them. The title bar for each function lists the
first TOS version that supported the function. Other functions have
backwards compatibility built into the GEMFAST binding so that they will
work correctly on all TOS versions (these are noted in the title bars too).
*--------------------------------------------------------------------------
* About TOS 1.4...
*--------------------------------------------------------------------------
The TOS 1.4 pre-release notes contain documentation for the following:
form_error form_alert shel_write shel_get shel_put
fsel_exinput wind_new
Of these, the form_error/alert and shel_???? docs seem to be just a
clarification of the docs without any functional changes.
The wind_new and fsel_exinput functions are new with TOS 1.4.
;-------------------------------------------------------------------------
; wind_new TOS 1.4
;-------------------------------------------------------------------------
void wind_new();
The 'wind_new' function is for doing a major cleanup after a GEM
application. It closes & deletes all windows, flushes all the windows'
buffers (of redraw msgs, I presume), clears the wind_update flag, and
restores ownership of the mouse to the system (END_MCTRL I presume). The
documentation is not clear on whether this function should be used by
an application that wants to shut down everything quickly, or whether it
is intended for a shell's use in cleaning up after an application exits.
I tend to suspect the latter, and I think this function was developed
because shell writers all begged Atari to provide something that could
clean up after an application the way the desktop does.
;-------------------------------------------------------------------------
; fsel_exinput TOS 1.4 (binding compatible with 1.0 and up)
;-------------------------------------------------------------------------
Full 1.4 emulation...
status = fsel_exinput(in_path, in_sel, &exitbtn, prompt_text);
(status and exitbtn are 16-bit ints, others are char *).
This routine is functionally equivelent to fsel_input, except that it
also allows you to specify a prompt string of up to 30 characters to be
displayed along with the file selector. While the function is new with
TOS 1.4, the AESFAST bindings support it in all versions via a routine
which checks the AES version number and simulates the actions of
fsel_exinput by using fsel_input and objc_draw. If running under
TOS 1.4, the system will display your prompt text in place of the words
'FILE SELECTOR' inside the fsel box. If running under pre-TOS 1.4, the
simulation routines place the prompt text in a box which appears
between the menu bar and the fsel box.
Other TOS 1.4 changes to the fsel routines that this routine supports
via simulation when running on pre-TOS 1.4 systems...
- The file selector now allows you to edit the pathname and hit RETURN
without exiting the dialog. If you edit the filename and hit <CR>,
you will exit as if you clicked on OK.
- If the initial pathname has a leading '\', it will be appended to the
end of the current default drive and path, and the entire resulting
string will be returned if the user exits via OK or <CR>.
- The current default drive and path are preserved, and the contents
of the current DTA are preserved. Only the default path on the
default drive is saved with the simulation software. If the user
changes devices during file selection, the default path on all devices
may be changed except for the device that was the default when
fsel_exinput was called.
The executable code for the fsel_exinput binding is big -- about 800
bytes. Also, it uses about 350 bytes of stack space during the call.
Still, having a prompted file selector that works correctly on all
machines will lend a touch of class to your application (IMHO).
Note that all of the above fsel ehancements which are supported by the
simulation on pre-TOS 1.4 systems are supported ONLY if you call
fsel_exinput; if you call fsel_input on a pre-1.4 system the default
path et. al. will behave as they always have. (Hint: USE exinput).
;-------------------------------------------------------------------------
; fsel_smallexinput TOS 1.4 (binding compatible with 1.0 and up)
;-------------------------------------------------------------------------
Prompting emulation only...
This function has calling parameters identical to fsel_exinput() (see
above), but it's behavior (return values, etc) is identical to that of
fsel_input() (the original). This function will call the real 'exinput'
routine if on TOS 1.4, but if on an earlier version it emulates only the
prompting of 'exinput', it does not save the path or DTA, or handle <CR>
correctly, or any of the other nice TOS 1.4 features. On the other hand,
it's only half as big as the full emulator for fsel_exinput(), so it's
handy for accessories and other small-memory applications. (It will add
about 450 bytes to your program, as opposed to 800).
I'd like to recommend that you do not code calls to fsel_smallexinput()
directly in your program. Instead, just code fsel_exinput(), and at the
top of your C source, code:
#define fsel_exinput fsel_smallexinput
and let the C compiler handle the rest for you. This ought to keep your
code compatible many years into the future...
;-------------------------------------------------------------------------
; fsel_14input TOS 1.4 (binding compatible with 1.0 and up)
;-------------------------------------------------------------------------
No emulation.
This function has calling parameters identical to fsel_exinput() (see
above). However, it makes no attempt to emulate any of the 1.4 exinput
features. Basically, if running on TOS 1.4, fsel_exinput is called. If
running on a pre-1.4 system, the prompt string is thrown away, and the
normal file selector is called. This binding is very small compared to
other (emulation mode) exinput bindings.
Again, it is best to access this function through a #define statement:
#define fsel_exinput fsel_14input
| This function was added with v1.4.
;-------------------------------------------------------------------------
; shel_get / shel